package leetcode_800;

/**
 *@author 周杨
 *CustomSortString_791 自定义构造一个String的顺序 要求T里的字母出场顺序要和S里一样
 *describe:用Hash做 AC 100%
 *2018年10月23日 上午9:13:21
 */
public class CustomSortString_791 {
	public String customSortString(String S, String T) {
		int []hash=new int[26];
		char [] chart=T.toCharArray();
        for(int i=0;i<T.length();++i) {
        	hash[chart[i]-'a']++;
        }
        int index=0;//指向t
        char [] chars=S.toCharArray();
        for(int i=0;i<chars.length;++i) {//s中没有重复的
        	while(hash[chars[i]-'a']!=0) {
        		chart[index++]=chars[i];
        		hash[chars[i]-'a']--;
        	}
        }
        for(int i=0;i<26;++i) {//剩下没有被收集在map里的 顺序就无所谓了
        	while(hash[i]!=0) {
        		chart[index++]=(char) (i+'a');
        		--hash[i];
        	}
        }
        return new String(chart);
    }
}
